This invention relates generally to controllers for video games and simulators implemented on a computer and more particularly to reconfiguring game controllers to correspond to a particular video game.
Conventionally, a personal computer (PC) is enabled to be controlled by external manual control devices by means of a game card, which provides an external game port into which control devices, such as a joystick, can be plugged. To provide widespread compatibility, which is essential to the ability to mass market a wide variety of video games and simulation programs, industry standards have been developed for game cards for personal computers such as those commonly referred to as IBM-compatibles. The universal adoption of these standards means that any external manual input device designed to control such computers and software must be compatible with the industry-standard game port. Any input device lacking such compatibility will not be able to be used with conventional personal computers equipped with standard game boards and will not be widely accepted.
The problem is that the industry standard game port provides only a limited number of inputs: four discrete signal inputs for receiving binary signals signifying "On" and Off" and four analog signal inputs for receiving variable voltage signals, such as output by a potentiometer, which are continuously variable over a limited range. The number of game boards that can be plugged into a conventional PC is also limited, to one. Consequently, the number of controllers supported by a standard game port, and the number of allowable functions communicated thereby, are severely restricted.
For example, a PC configured as a combat aviation video game/simulator as shown in FIG. 1 has a joystick controller and a foot-pedal rudder controller. The joystick conventionally has a handle pivotally coupled to a base for forward/rearward movement and left/right movement by the user. The handle is connected in the base to transducers, such as potentiometers, which are coupled to two of the analog inputs of the game port to input proportional signals to the PC microprocessor for controlling analog functions in the video game/simulation program. The handle also includes four discrete switches that are operable by the user's fingers to control discrete functions in the video game/simulation program. The joystick controller therefore consumes two of the analog inputs and all four of the discrete inputs.
Attempting to circumvent these limitations, video game and simulator programmers have implemented many commands by programming function keys on the PC keyboard. This approach detracts from the realism of simulation, which is particularly important to flight simulation video games. Developers have strived to attain more realism by designing microprocessor-based input devices which output keycodes to the PC keyboard port emulating function keys on the PC keyboard. One example is disclosed in U.S. Pat. No. 4,852,031 to Brasington. The assignee of the present invention has also marketed a throttle controller that outputs keycodes to the PC keyboard port. These efforts have been successful but require a manufacturer to design the controller to transmit a unique keycode for each individual controller input function.
Each video game has its own set of keycodes that it recognizes, with each keycode effectuating a corresponding response within the video game. There is no standard set of keycodes throughout the video game industry. Efforts to convert the keycodes supplied by a video game input to those required by a pre-existing video game program typically require a terminate-and-stay-resident ("TSR") program running on the computer concurrently with the video game. TSRs consume valuable memory and can potentially conflict with existing programs.
Another method of providing compatibility with new or existing video games requires the manufacturer to supply an updated version of the controller firmware to the user, usually in the form of a programmable-read-only-memory ("PROM"). This technique has several disadvantages. The first is that there is additional expense to the manufacturer in providing the updated firmware, which is ultimately passed on to the user. The second disadvantage is that most video game users are either unqualified or unwilling to install the PROM into their game controller. Installing the PROM incorrectly can render the controller inoperable by damaging the PROM or other electronic components due to electrostatic-discharge (ESD). Moreover, many video game users are simply unwilling to disassemble their game controllers for fear of damaging the device.
A related problem with video game controllers is a limitation on the number of inputs that can be supported by an individual controller. Currently, due in large part to the exponential growth in personal computer performance, video games can process many more inputs than can be supported on the one or two controllers that can be reasonably handled by an individual user. As a result, only a select few of the available video game inputs are actually used by the user.
The problem is exacerbated by real-time video games such as flight simulators where the user is required to supply the appropriate input in a timely manner or terminate the simulator, i.e., crash. The user in these real-time video games does not have time to change controllers or even to reposition the user's hands on the current controllers. For example, when engaging an adversary during simulated air combat, the user must be able to activate a camera to be begin recording the engagement. The user cannot take the time or the risk to reposition his hands for fear of losing sight of the adversary.
Accordingly, a need remains for a way to add camera activation capability to a video game system which does not require the user to reposition the user's hands.